package com.syg.configuration;

import com.syg.orm.SpringScheduledCron;
import com.syg.orm.SpringScheduledCronRepository;
import com.syg.util.SpringContextHelper;

/**
 * @author syg
 */
public interface ScheduledOfTask extends Runnable{

    /**
     * 定时任务方法
     */
    void execute();
    /**
     * 实现控制定时任务启用或禁用的功能
     */
    @Override
    default void run() {
        SpringScheduledCronRepository repository = SpringContextHelper.getBean(SpringScheduledCronRepository.class);
        // 这里的getClass()是什么？为什么不是接口？
        SpringScheduledCron scheduledCron = repository.findByCronKey(this.getClass().getName());
        if ("1".equals(scheduledCron.getStatus())) {
            // 任务是禁用状态
            return;
        }
        execute();
    }
}
